package portal.common;

import java.util.regex.*;

import org.springframework.util.StringUtils;

public class MyStringUtils {
	public static boolean isEmpty(String str){
		if(StringUtils.isEmpty(str))
			return true;
		if(StringUtils.isEmpty(str.replaceAll("\r|\t|\n", "")))
			return true;
		return false;
	}
	public static boolean isNotEmpty(String str){
		return !isEmpty(str);
	}
	public static boolean isBlank(String str){
		return isEmpty(trimAll(str));
	}
	public static String trimAll(String str){
		if(str==null)
			return "";
		return str.trim().replaceAll("\r|\t|\n", "");
	}
	public static String noSpace(String str){
		return trimAll(str).replaceAll(" ", "");
	}
	public static String strictSpace(String string){
		string =trimAll(string.replaceAll("\r|\t|\n", " "));
		while(string.contains("  ")){
			string =string.replaceAll("  ", " ");
		}
		return string;
	}
	public static String upperFirstCase(String str){
		if(Character.isUpperCase(str.charAt(0)))
			return str;
		return (new StringBuilder()).append(Character.toUpperCase(str.charAt(0))).append(str.substring(1)).toString();
		//return str;
	}
	public static String matcher (String reg,String str){
		//String str = "需要提取的字符串1.111";
	    // 控制正则表达式的匹配行为的参数(小数)
		Pattern p = Pattern.compile(reg);
		//Matcher类的构造方法也是私有的,不能随意创建,只能通过Pattern.matcher(CharSequence input)方法得到该类的实例. 
		Matcher m = p.matcher(str);
		//m.find用来判断该字符串中是否含有与"(\\d+\\.\\d+)"相匹配的子串
		if (m.find()) {
		    //如果有相匹配的,则判断是否为null操作
			//group()中的参数：0表示匹配整个正则，1表示匹配第一个括号的正则,2表示匹配第二个正则,在这只有一个括号,即1和0是一样的
			str = m.group(1) == null ? "" : m.group(1);
		}	   
		return str;
	}
	public static long matcherLong(String reg,String str){
		//reg "^[\[]swp=(\\d+\\.\\d+)"
		return Long.valueOf(matcher(reg,str));
	}
}
